Een verwijzende sleutel moet altijd verwijzen naar een primaire
sleutel uit een andere tabel. Verwijzende sleutels kunnen in SQL gedefinieerd
worden bij het create table statement. Het volgende voorbeeld creëert
de tabel RESULTAAT met als primaire sleutel het tupel
en als verwijzende sleutels de attributen
en
.
create table RESULTAAT(
student_nr integer not null,
vak_code char(6) not null,
datum date,
cijfer decimal(3,1),
constraint pk_result
primary key (student_nr, vak_code, datum),
constraint fk_student_nr
foreign key (student_nr)
references STUDENT(student_nr),
constraint fk_vak_code
foreign key (vak_code)
references VAK(vak_code) );
Het definiëren van verwijzende sleutels werkt bijna hetzelfde als het definiëren van primaire sleutels; het enige verschil is dat er ook aangegeven moet worden naar welke primaire sleutel uit een andere tabel er verwezen wordt. Dit gebeurt met het statement:
references [TABEL](veld-naam1, veld-naam2, ...)Merk op dat een verwijzende sleutel ook naar meerdere attributen kan verwijzen.
Opnieuw zorgt SQL ervoor dat de verwijzende-sleutel-voorwaarden vervuld
blijven. Dit betekent dat
en
primaire sleutels moeten zijn in respectievelijk de tabellen
STUDENT en VAK. Zorg er dus voor dat bij het creëren van tabellen
met verwijzende sleutels de tabellen, waarnaar verwezen wordt reeds bestaan!